struct count2
{
  template<class __d3245 >
  struct generatrix< metaemptylist< >, __d3245 >
  {
    static int code()
    {
      return 0;
    }
  };

  template<class xs, class __d3245 >
  struct generatrix< metalist<Int<2> , xs >, __d3245 >
  {
    static int code(int  n)
    {
      return n+(count2::generatrix<typename xs::value >::code(n+1));
    }
  };

  template<class x, class xs, class __d3245 >
  struct generatrix< metalist<x, xs >, __d3245 >
  {
    static int code(int  n)
    {
      return (count2::generatrix<typename xs::value >::code(n));
    }
  };
};
